#pragma once

#include "ZCommon.h"
#include <winsock2.h>
#include <boost/shared_ptr.hpp>
#include <string>

namespace	Z	{

//------------------------------------------------------------------------------------------------------------------------
class	Socket;
class	AsyncSocket;
typedef	size_t	NetworkId;
typedef	boost::shared_ptr<Socket>	SocketPtr;

class	NetworkAddress
{
public:
	NetworkAddress(const std::string& address, u_short port)	:	mAddress(address),	mPort(port)	{}
	const std::string&	ip()	const	{	return mAddress;	}
	u_short	port()	const	{	return mPort;	}

private:
	const	std::string	mAddress;
	const	u_short	mPort;
};

}